package com.tianxia120.website.data.interceptors.base;

import com.jfinal.aop.Interceptor;
import com.jfinal.aop.Invocation;
import com.jfinal.core.Controller;
import com.tianxia120.website.data.utils.ResultUtils;

/**
 * @createTime: 2018/6/5
 * @author: HingLo
 * @description: 请求方式拦截器的基类
 */
abstract public class BaseMethodInterceptor implements Interceptor {
    /**
     * 请求方式
     */
   protected String method;

    @Override
    public void intercept(Invocation inv) {
        //子类继承该类后，是使用此方法来初始化请求方式
        init();
        Controller controller = inv.getController();
        if (method.equalsIgnoreCase(controller.getRequest().getMethod())) {
            inv.invoke();
        } else {
            controller.renderJson(ResultUtils.error(405, "请求方式不支持"));
        }
    }

    /**
     * 子类需要实现的方式
     */
    abstract protected void init();

}
